iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
自我挑戰組

30天學會用FreeBSD & Apache架網站系列 第 23

【Day23】Apache的主要設定檔:httpd.conf

  • 分享至 

  • xImage
  •  

今天要來講一下主要設定檔httpd.conf裡面的幾個重要、平常常用的的選項。

httpd.conf

每一行都是一個設定,當前面有一個#的時候,就是被註解掉了。
接下來就可以進入細部囉!

ServerRoot

ServerRoot ["/usr/local"]
這個應該往下拉一點就會看到了。
他表示的是伺服器的目錄,基本上留預設就好,不用動他。

Listen

Listen 80
Listen 443

這個是開啟的port,他有listen的就是開瀏覽器可以連的port,如果沒有開而且又不是特殊的port(像ssh、ftp之類的),瀏覽器就會告訴你回應時間過長拒絕連線之類的。通常開80(http)跟443(https)就夠了,不要開太多。

LoadModule

LoadModule [module name] [module path]
接下來繼續往下拉就會看到一堆LoadModule,他們是用來引入套件的,通常都已經寫好只是被註解起來,當需要用的時候就把它取消註解就好了。建議不要做除了註解掉跟取消註解之外的事。
然後你會發現它的路徑是相對路徑,就是以ServerRoot為準。

ServerAdmin

ServerAdmin [you@example.com]
路過一堆LoadModule之後就會看到他。
它是用來設定一個管理員的電子郵件信箱,當伺服器出了甚麼事的時候就可以把信寄給管理員。如果要設的話強烈建議不要用自己工作用或是平常會用的,因為很有可能被塞爆。

ServerName

ServerName www.example.com:80
這是你的伺服器名稱,就把它設成你的網址吧,不然至少用localhost替代掉。
以後講virtual hosts會用到它。

DocumentRoot

DocumentRoot "/usr/local/www/apache24/data"
還有印象昨天有說網站要放在這個資料夾嗎。如果不想要這麼長的目錄可以自己改,像是/home/www之類的。
所以要是腦袋不小心當掉不知道網頁放哪的話,就來httpd.conf找一下,然後就會知道了。
然後在下一行會是<Directory "/usr/local/www/apache24/data">,裡面就是你網頁的設定,這邊講幾個可能會用到的:
Options Indexes FollowSymLinks
Indexes跟FollowSymLinks是兩個分開的設定,前者指的是在沒有預設的檔案(index.html或index.php之類的,等等會說)的時候,就顯示出目錄全部的檔案給你選,顯然應該要把它刪掉比較好;而後者是讓你的網頁可以用超連結。
AllowOverride All
可以讓.htaccess(之後會講到)去覆寫,我通常是會留下原來的All,但安全性就不一定好了。
Require all granted
在apache2.2的時候應該會是:

Order allow,deny
Allow from all

不過現在改掉了,它會讓全部來訪的都通過,如果網站是要公開的就留下,如果需要一點隱私性可以用下面這幾個:
Require all denied:全部封鎖。
Require ip [ip]:特定IP可以通過。也可以用指定網段的方式,如:199.9.9.0/255.255.255.0或是201.13.54.0/8之類的。
Require host test.cnmc.tw:允許特定主機。

DirectoryIndex

通過了很長的DocumentRoot之後,就會看到他了。
DirectoryIndex index.html
他就是剛剛說Options預設檔案,可以接很多個,會以最左邊那個為優先,如果指定的都沒有的話就會看看Options有沒有Indexes了。
通常會是DirectoryIndexes index.php index.html,相反的話就會先找HTML而不是PHP,通常應該都會用PHP(吧)。

ErrorLog

ErrorLog "/var/log/httpd-error.log"
他會指定apache的訊息跟錯誤等等要寫到哪一個檔案,當系統突然不理你的時候就可以去看看,然後通常都是幾千幾萬行之類的如果有累積。

LogLevel

LogLevel warn
錯誤訊息是會分等級的,他就是用來指定哪個等級以上的訊息要寫到log檔裡面去,至於等級的分類我們來看看apache官方的說法:
https://ithelp.ithome.com.tw/upload/images/20191006/20120263xCPvS04sLo.png
他有說建議級別要設在crit之上,我自己是留著warn啦,反正多點訊息總是好的(?)。

Include

往下大概到490行左右會看到很多。
Include [path]
它是用來包含一些在extra/的設定檔進來的,都有一行說明文字再加上一行的Include,之後會常常用到(好像就是明天XD)。他們都是被註解而已,所以會需要取消註解。

今日小結

今天把httpd.conf的東西大部分看完了,但是以後會常常回來改,像是取消註解Include之類的。然後改過之後要記得service apache24 restartservice apache24 reload,這樣才會生效。
明天就會開始改extra/裡面的設定檔了,真是令人緊張。
話說明天段考,然後我顯然是要讀不完了QQ
算了沒關係還有兩次(X)


上一篇
【Day22】Apache2.4安裝及概述
下一篇
【Day24】Apache的SSL設定:httpd-ssl.conf
系列文
30天學會用FreeBSD & Apache架網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言